/**
 * 1。Promise是一个类，在执行的时候需要传一个执行器进去，执行器立即调用
 * 2.Promise有三种状态  成功fulfilled  失败rejected 等待pending
 *     pending ==> fulfilled
 *     pending ==> reject 
 *     状态一旦确定就不可更改
 * 3.resolve和reject函数式用来更改状态的
 *     resolve: fulfilled
 *     reject: rejected
 */
const MyPromise = require("./MyPromise.js");
const mypromise = new MyPromise((resolve,reject)=>{
  // setTimeout(() => {
  //   resolve("成功setTimeout");
  // }, 2000);
  // resolve(100)
  reject("失败")
});

//测试传同一个promise的报错
// const p1 = mypromise.then((value)=>{
//   console.log("0",value)
//   return p1;
// })

// mypromise.then(value=>{
//   console.log("1",value)
//   return "成功"
// },(reson)=>{
//   console.log(reson)
//   return 10000
// }).then((value)=>{
//   console.log(value)
// })

mypromise.then().then().then(value=>{
  console.log(value)
}, reason=>{
  console.log("阿加",reason)
})